﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace V82.ОбщиеМодули
{
	public partial class РаботаСФайлами
	{
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// ПРОЦЕДУРЫ И ФУНКЦИИ МЕХАНИЗМА РАБОТЫ С ФАЙЛАМИ (ХРАНИМЫМИ В КОНФИГУРАЦИИ)
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		// Составляет полное имя файла из имени каталога и имени файла.
		//
		// Параметры
		//  ИмяКаталога  – Строка, содержащая путь к каталогу файла на диске.
		//  ИмяФайла     – Строка, содержащая имя файла, без имени каталога.
		//
		// Возвращаемое значение:
		//   Строка – полное имя файла с учетом каталога.
		//

		public object ПолучитьИмяФайла(/*ИмяКаталога, ИмяФайла*/)
		{
			if(true/*Не ПустаяСтрока(ИмяФайла)*/)
			{
				//Возврат ИмяКаталога + ?(Прав(ИмяКаталога, 1) = "\", "", "\") + ИмяФайла;
			}
			return null;
		}
		// ПолучитьИмяФайла()
		// Процедура полное имя файла разбивает на путь в файлу и имя самого файла
		//
		// Параметры
		//  ПолноеИмяФайла  – Строка, содержащая полное имя файла на диске.
		//  ИмяКаталога  – Строка, содержащая путь к каталогу файла на диске.
		//  ИмяФайла     – Строка, содержащая имя файла, без имени каталога.
		//

		public void ПолучитьКаталогИИмяФайла(/*Знач ПолноеИмяФайла, ИмяКаталога, ИмяФайла*/)
		{
			/*// находим последний с конца "\" все что до него - это путь, после - имя
*/
			//НомерПозиции = СтрДлина(ПолноеИмяФайла);
			while(true/*НомерПозиции <> 0*/)
			{
				if(true/*Сред(ПолноеИмяФайла, НомерПозиции, 1) = "\"*/)
				{
					//ИмяКаталога = Сред(ПолноеИмяФайла, 1, НомерПозиции - 1);
					//ИмяФайла = Сред(ПолноеИмяФайла, НомерПозиции + 1);
				}
				//НомерПозиции = НомерПозиции - 1;
			}
			/*// так и не нашли слешей, значит все- это имя файла
*/
			//ИмяФайла = ПолноеИмяФайла;
			//ИмяКаталога = "";
		}
		// Процедура меняет расширение имени переданного файла (сам файл не меняется, меняется колько строка)
		//
		// Параметры
		//  ИмяФайла  – Строка, содержащая полное имя файла на диске.
		//  НовоеРасширениеФайла  – Строка, содержащая новое расширение файла.
		//

		public void УстановитьРасширениеФайла(/*ИмяФайла, Знач НовоеРасширениеФайла*/)
		{
			/*// к расширению точку добавляем
*/
			if(true/*Сред(НовоеРасширениеФайла, 1, 1) <> "."*/)
			{
				//ЗначениеНовогоРасширения = "." + НовоеРасширениеФайла;
			}
			/*// если не находим точку в текущем имени файла, то просто приписываем к нему новое расширение с конца
*/
			//ПозицияТочки = СтрДлина(ИмяФайла);
			while(true/*ПозицияТочки >= 1*/)
			{
				if(true/*Сред(ИмяФайла, ПозицияТочки, 1) = "."*/)
				{
					//ИмяФайла = Сред(ИмяФайла, 1, ПозицияТочки - 1) + ЗначениеНовогоРасширения;
				}
				//ПозицияТочки = ПозицияТочки - 1;
			}
			/*// не нашли точку в имени файла
*/
			//ИмяФайла = ИмяФайла + ЗначениеНовогоРасширения;
		}
		// Функция определяет дату последней модификации существующего файла на диске
		// Параметры
		//  ИмяФайла  – Строка, содержащая полный путь к файла на диске.
		//
		// Возвращаемое значение:
		//   Дата – Дата последней модификации файла
		//

		public object ПолучитьДатуФайла(/*Знач ИмяФайла*/)
		{
			//Файл = Новый Файл(ИмяФайла);
			return null;
		}
		// Формирует строку фильтра для диалога выбора файла с типами файлов.
		//
		// Параметры
		//  Нет.
		//
		// Возвращаемое значение:
		//   Строка – фильтр по типам файлов для диалога выбора файла.
		//

		public object ПолучитьФильтрФайлов(/**/)
		{
			return null;
		}
		// ПолучитьФильтрФайлов()
		// Формирует строку фильтра для диалога выбора картинки с типами файлов.
		//
		// Параметры
		//  Нет.
		//
		// Возвращаемое значение:
		//   Строка – фильтр по типам файлов для диалога выбора картинки.
		//

		public object ПолучитьФильтрИзображений(/**/)
		{
			return null;
		}
		// ПолучитьФильтрИзображений()
		// Формирует имя каталога для сохранения/чтения файлов. Для различных типов объектов возможны
		// различные алгоритмы определения каталога.
		//
		// Параметры
		//  ОбъектФайла  – Ссылка на объект данных, для которого прикрепляются файлы.
		//
		// Возвращаемое значение:
		//   Строка – каталог файлов для указанного объекта и пользователя.
		//

		public object ПолучитьИмяКаталога(/**/)
		{
			/*// Получим рабочий каталог из свойств пользователя.
*/
			//РабочийКаталог = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойКаталогФайлов");
			/*// Если рабочий каталог не указан получим каталог временных файлов прогаммы
*/
			if(true/*ПустаяСтрока(РабочийКаталог)*/)
			{
				//РабочийКаталог = КаталогВременныхФайлов();
			}
			/*// Так как при различных указаниях рабочего каталога возможно наличие или отсутствие
*/
			/*// последнего слеша, приведем строку каталога к унифицированному виду - без слеша на конце.
*/
			if(true/*Прав(РабочийКаталог, 1) = "\"*/)
			{
				//РабочийКаталог = Лев(РабочийКаталог, СтрДлина(РабочийКаталог) - 1);
			}
			return null;
		}
		// ПолучитьИмяКаталога()
		// функция возвращает список запрещенных символов в именах файлов
		// Возвращаемое значение:
		//   Список значений в котором хранится список всех запрещенных символов в именах файлов.
		//

		public object ПолучитьСписокЗапрещенныхСимволовВИменахФайлов(/**/)
		{
			//СписокСимволов = Новый СписокЗначений();
			//СписокСимволов.Добавить("\");
			//СписокСимволов.Добавить("/");
			//СписокСимволов.Добавить(":");
			//СписокСимволов.Добавить("*");
			//СписокСимволов.Добавить("&");
			//СписокСимволов.Добавить("""");
			//СписокСимволов.Добавить("<");
			//СписокСимволов.Добавить(">");
			//СписокСимволов.Добавить("|");
			return null;
		}
		// Проверяет наличие запрещенных в среде MS Windows символов в имени файла.
		//
		// Параметры
		//  ИмяФайла     – Строка, содержащая имя файла, без каталога.
		//
		// Возвращаемое значение:
		//   Булево – Истина, если есть запрещенные символы, Ложь, если нет.
		//

		public object ЕстьЗапрещенныеСимволыИмени(/*ИмяФайла*/)
		{
			if(true/*ПустаяСтрока(ИмяФайла)*/)
			{
			}
			//СписокСимволов = ПолучитьСписокЗапрещенныхСимволовВИменахФайлов();
			/*// ничего не нашли
*/
			return null;
		}
		// ЕстьЗапрещенныеСимволыИмени()
		// функция формирует имя файла выбрасывая из первоначально предложенного имени все
		// запрещенные символы
		// Параметры
		//  ИмяФайла     – Строка, содержащая имя файла, без каталога.
		//
		// Возвращаемое значение:
		//   Строка – имя файла, которое может быть использовано в файловой системе
		//

		public object УдалитьЗапрещенныеСимволыИмени(/*Знач ИмяФайла*/)
		{
			//ИтоговоеИмяФайла = СокрЛП(ИмяФайла);
			if(true/*ПустаяСтрока(ИтоговоеИмяФайла)*/)
			{
			}
			//СписокСимволов = ПолучитьСписокЗапрещенныхСимволовВИменахФайлов();
			return null;
		}
		// УдалитьЗапрещенныеСимволыИмени()
		// Получает индекс пиктограммы файла из коллекции пиктограмм в зависимости от расширения файла.
		//
		// Параметры
		//  РасширениеФайла – Строка, содержащая расширение файла.
		//
		// Возвращаемое значение:
		//   Число – индекс пиктограммы в коллекции.
		//

		public object ПолучитьИндексПиктограммыФайла(/*РасширениеФайла*/)
		{
			//РасширениеФайла = Врег(РасширениеФайла);
			if(true/*Найти(",1CD,CF,CFU,DT,", "," + РасширениеФайла + ",") > 0*/)
			{
			}
			return null;
		}
		// ПолучитьИндексПиктограммыФайла()
		// Функция определяет, есть ли у объекта элементы в хранилище дополнительной информации
		//
		// Параметры
		//  Объект - СправочникСсылка, ДокументСсылка, объект для которого определяем наличие файлов
		//
		// Возвращаемое значение:
		//   Булево
		//

		public object ЕстьДополнительнаяИнформация(/*Объект, ИмяСправочника = "ХранилищеДополнительнойИнформации"*/)
		{
			//ЗначениеНайдено = Ложь;
			if(true/*ЗначениеЗаполнено(Объект)*/)
			{
				//Запрос = Новый Запрос;
				//Запрос.УстановитьПараметр("Объект", Объект);
				/*Запрос.Текст = "
		|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
		|	ХранилищеДополнительнойИнформации.Ссылка,
		|	ХранилищеДополнительнойИнформации.Объект
		|ИЗ
		|	Справочник." + ИмяСправочника + " КАК ХранилищеДополнительнойИнформации
		|ГДЕ
		|	ХранилищеДополнительнойИнформации.Объект = &Объект
		|";*/
				//ЗначениеНайдено = НЕ Запрос.Выполнить().Пустой();
			}
			return null;
		}
		// Открывает переданный файл на диске с учетом типа файлов. Файлы, с которыми
		// может работать 1С:Предприятие открываются в 1С:Предприятии. Остальные файлы
		// пытаются открыться зарегистрированным для них в системе приложением.
		//
		// Параметры
		//  ИмяКаталога  – Строка, содержащая путь к каталогу файла на диске.
		//  ИмяФайла     – Строка, содержащая имя файла, без имени каталога.
		//

		public void ОткрытьФайлДополнительнойИнформации(/*ИмяКаталога, ИмяФайла*/)
		{
			//ПолноеИмяФайла = ПолучитьИмяФайла(ИмяКаталога, УдалитьЗапрещенныеСимволыИмени(ИмяФайла));
			//РасширениеФайла = Врег(ПолучитьРасширениеФайла(ИмяФайла));
			if(true/*РасширениеФайла = "MXL"*/)
			{
				//ТабличныйДокумент = Новый ТабличныйДокумент;
				//ТабличныйДокумент.Прочитать(ПолноеИмяФайла);
				//ТабличныйДокумент.Показать(ИмяФайла, Лев(ИмяФайла, СтрДлина(ИмяФайла) - 4));
			}
		}
		// ОткрытьФайлДополнительнойИнформации()
		// Проверяет наличие каталога на диске и предлагает создать, если каталога не существует.
		//
		// Параметры
		//  ИмяКаталога  – Строка, содержащая путь к каталогу файла на диске.
		//
		// Возвращаемое значение:
		//   Булево – Истина, если каталог существует или создан, Ложь, если каталога нет.
		//

		public object ПроверитьСуществованиеКаталога(/*ИмяКаталога*/)
		{
			//КаталогНаДиске = Новый Файл(ИмяКаталога);
			if(true/*КаталогНаДиске.Существует()*/)
			{
			}
			return null;
		}
		// ПроверитьСуществованиеКаталога()
		// Позволяет пользователю выбрать каталог на диске.
		//
		// Параметры
		//  ИмяКаталога  – Строка, содержащая начальный путь к каталогу на диске.
		//	ЗаголовокДиалога - Строка, содержащая заголовок диалога
		//
		// Возвращаемое значение:
		//   Булево – Истина, если каталог выбран, Ложь, если нет.
		//

		public object ВыбратьКаталог(/*ИмяКаталога, Знач ЗаголовокДиалога = "Укажите каталог"*/)
		{
			//Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
			//Диалог.Заголовок = ЗаголовокДиалога;
			//Диалог.МножественныйВыбор = Ложь;
			//Диалог.Каталог = ИмяКаталога;
			if(true/*Диалог.Выбрать()*/)
			{
				//ИмяКаталога = Диалог.Каталог;
			}
			return null;
		}
		// ВыбатьКаталог()
		// Сохраняет файл на диске.
		//
		// Параметры
		//  Хранилище    – ХранилищеЗначения, которое содержит объект типа
		//                 ДвоичныеДанные с файлом для записи на диск.
		//  ИмяФайла     – Строка, содержащая полное имя файла.
		//  ТолькоЧтение – Булево, признак установки записываемому файлу атрибута ТолькоЧтение.
		//  СпособПерезаписи – Строка. Параметр определеляет способ перезаписи существующих
		//                 файлов на диске. В зависимости от пришедшего параметра выдается или
		//                 не выдается запрос на перезапись файлов. Может устанавливаться в теле
		//                 функции, если это необходимо. Принимаемые значения:
		//                 "" (пустая строка) - это означает, что диалог еще ни разу не задавался
		//                 и при наличии существующего файла будет выдан диалог запроса перезаписи.
		//                 ДА - предыдущий файл был перезаписан, но перезапись текущего надо
		//                 запросить снова
		//                 НЕТ - предыдущий файл не был перезаписан, но перезапись текущего надо
		//                 запросить снова
		//                 ДАДЛЯВСЕХ - предыдущий файл был перезаписан, и все последующие тоже
		//                 надо перезаписывать.
		//                 НЕТДЛЯВСЕХ - предыдущий файл не был перезаписан, и все последующие тоже
		//                 не надо перезаписывать.
		//
		// Возвращаемое значение:
		//   Булево – Истина, если каталог выбран, Ложь, если нет.
		//

		public object СохранитьФайлНаДиске(/*Хранилище, ИмяФайла, ТолькоЧтение, СпособПерезаписи, ВопросОПерезаписи = Истина, ИмяСправочника = "ХранилищеДополнительнойИнформации"*/)
		{
			return null;
		}
		// СохранитьФайлНаДиске()
		// Проверяет возможность измененния расширения в имени файла. Выдает запрос пользователю
		// на смену расширения.
		//
		// Параметры
		//  ТекущееРасширение – Строка, содержащая текущее расширение файла, до изменения.
		//  НовоеРасширение – Строка, содержащая новое расширение файла, после изменения.
		//
		// Возвращаемое значение:
		//   Булево – Истина, если пользователь запретил изменение расширения, Ложь, если разрешил.
		//

		public object НельзяИзменятьРасширение(/*ТекущееРасширение, НовоеРасширение*/)
		{
			if(true/*Не ПустаяСтрока(ТекущееРасширение) И Не НовоеРасширение = ТекущееРасширение*/)
			{
				//Ответ = Вопрос("Вы действительно хотите измерить расширение", РежимДиалогаВопрос.ДаНет);
				if(true/*Ответ = КодВозвратаДиалога.Да*/)
				{
				}
			}
			return null;
		}
		// НельзяИзменятьРасширение()
		// Создает и устанавливает реквизиты диалога выбора фала.
		//
		// Параметры
		//  МножественныйВыбор – Булево, признак множественного выбора.
		//  НачальныйКаталог – Строка, содержащая начальный каталог выбора файла.
		//
		// Возвращаемое значение:
		//   ДиалогВыбораФайлов – созданный диалог.
		//

		public object ПолучитьДиалогВыбораФайлов(/*МножественныйВыбор, НачальныйКаталог = ""*/)
		{
			//Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
			//Диалог.Каталог = НачальныйКаталог;
			//Диалог.Заголовок = "Выберите файл...";
			//Диалог.Фильтр = ПолучитьФильтрФайлов();
			//Диалог.ПредварительныйПросмотр = Истина;
			//Диалог.ПроверятьСуществованиеФайла = Истина;
			//Диалог.МножественныйВыбор = МножественныйВыбор;
			return null;
		}
		// ПолучитьДиалогВыбораФайлов()
		// Выбор файлов пользователем на диске и добавление их объекту.
		//
		// Параметры
		//  ОбъектФайла  - Ссылка на объект данных, для которого прикрепляются файлы.
		//  ВидДанных    - ПеречислениеСсылка.ВидыДополнительнойИнформацииОбъектов содержащая вид
		//                 дополнительной информации объекта.
		//

		public void ДобавитьФайлы(/*ОбъектФайла, ВидДанных = Неопределено, ИмяСправочника = "ХранилищеДополнительнойИнформации"*/)
		{
			if(true/*Не ОбъектФайла = Неопределено И ОбъектФайла.Пустая()*/)
			{
				//Предупреждение("Необходимо записать объект, которому принадлежит файл.");
			}
			//Диалог = ПолучитьДиалогВыбораФайлов(Истина);
			if(true/*Не Диалог.Выбрать()*/)
			{
			}
		}
		// ДобавитьФайлы()
		// Сохранить файл
		//

		public void СохранитьФайл(/*СтруктураПараметров, Знач ИмяФайла, Хранилище, СпособПерезаписи = ""*/)
		{
			//Состояние("Сохраняется файл: " + ИмяФайла);
			//ИмяФайла = ПолучитьИмяФайла(СтруктураПараметров.ИмяКаталога, УдалитьЗапрещенныеСимволыИмени(ИмяФайла));
			//СохранитьФайлНаДиске(Хранилище, ИмяФайла, СтруктураПараметров.ТолькоЧтение, СпособПерезаписи);
		}
		// Получить структуру параметров для функций сохранения файлов
		//

		public object ПолучитьСтруктуруПараметровДляСохраненияФайлов(/*ИмяКаталога, ИмяСправочника*/)
		{
			//ФормаСохраненияФайлов = Справочники[ИмяСправочника].ПолучитьФорму("ФормаСохраненияФайлов");
			//ФормаСохраненияФайлов.ИмяКаталога    = ИмяКаталога;
			//ФормаСохраненияФайлов.ТолькоЧтение   = Ложь;
			if(true/*ИмяКаталога = Неопределено*/)
			{
				//ФормаСохраненияФайлов.ИмяКаталога = ПолучитьИмяКаталога();
				//ФормаСохраненияФайлов.ОткрытьКаталог = Истина;
			}
			//СтруктураПараметров = ФормаСохраненияФайлов.ОткрытьМодально();
			if(true/*СтруктураПараметров = Неопределено*/)
			{
			}
			if(true/*Не ПроверитьСуществованиеКаталога(СтруктураПараметров.ИмяКаталога)*/)
			{
			}
			return null;
		}
		// ПолучитьСтруктуруПараметровДляСохраненияФайлов()
		// Сохранение на диск отмеченных файлов объекта.
		//
		// Параметры
		//  ОбъектФайла  - Ссылка на объект данных, для которого прикрепляются файлы.
		//  ВыделенныеСтроки - ВыделенныеСтроки табличного поля со справочником дополнительной
		//                 информации.
		//

		public void СохранитьФайлы(/*ОбъектФайла, ВыделенныеСтроки = Неопределено, ИмяКаталога = Неопределено, ИмяСправочника = "ХранилищеДополнительнойИнформации"*/)
		{
			if(true/*(ВыделенныеСтроки <> Неопределено) И (ВыделенныеСтроки.Количество() = 0)*/)
			{
			}
			//СтруктураПараметров = ПолучитьСтруктуруПараметровДляСохраненияФайлов(ИмяКаталога, ИмяСправочника);
			if(true/*СтруктураПараметров = Неопределено*/)
			{
			}
			//СпособПерезаписи = "";
			if(true/*ВыделенныеСтроки = Неопределено*/)
			{
				//СохранитьФайл(СтруктураПараметров, ОбъектФайла.ИмяФайла, ОбъектФайла.Хранилище, СпособПерезаписи);
			}
			if(true/*СтруктураПараметров.ОткрытьКаталог*/)
			{
				//ЗапуститьПриложение("explorer " + СтруктураПараметров.ИмяКаталога);
			}
		}
		// СохранитьФайлы()
		// Сохранение на диск файла и его открытие.
		//

		public void ОткрытьФайлИзХранилища(/*ИмяФайла, Хранилище, СпособПерезаписи = "", ВопросОПерезаписи = Истина*/)
		{
			//ИмяКаталога = ПолучитьИмяКаталога();
			//Состояние("Сохраняется файл: " + ИмяФайла);
			//ИмяВременногоФайла = ПолучитьИмяФайла(ИмяКаталога, УдалитьЗапрещенныеСимволыИмени(ИмяФайла));
			if(true/*СохранитьФайлНаДиске(Хранилище, ИмяВременногоФайла, Ложь, СпособПерезаписи, ВопросОПерезаписи)*/)
			{
				//ОткрытьФайлДополнительнойИнформации(ИмяКаталога, ИмяФайла);
			}
		}
		// Сохранение на диск отмеченных файлов объекта и их открытие.
		//
		// Параметры
		//  ОбъектФайла  - Ссылка на объект данных, для которого прикрепляются файлы.
		//  ВыделенныеСтроки - ВыделенныеСтроки табличного поля со справочником дополнительной
		//                 информации.
		//

		public void ОткрытьФайлы(/*ОбъектФайла, ВыделенныеСтроки = Неопределено, ВопросОПерезаписи = Истина*/)
		{
			if(true/*ВыделенныеСтроки = Неопределено*/)
			{
				if(true/*УправлениеЭлектроннойПочтой.ОткрытьФайлMSG(ОбъектФайла)*/)
				{
				}
				//СпособПерезаписи = "";
				//ОткрытьФайлИзХранилища(ОбъектФайла.ИмяФайла, ОбъектФайла.Хранилище, СпособПерезаписи, ВопросОПерезаписи);
			}
		}
		// ОткрытьФайлы()
		// Получает картинку файла из библиотеки картинок в зависимости от расширения файла.
		//
		// Параметры
		//  РасширениеФайла – Строка, содержащая расширение файла.
		//
		// Возвращаемое значение:
		//   Картинка.
		//

		public object ПолучитьПиктограммуФайла(/*РасширениеФайла*/)
		{
			//РасширениеФайла = Врег(РасширениеФайла);
			if(true/*Найти(",1CD,CF,CFU,DT,", "," + РасширениеФайла + ",") > 0*/)
			{
			}
			return null;
		}
		// ПолучитьПиктограммуФайла()
		// Изменяет картинку у кнопки открытия формы списка файлов и изображений.
		//
		// Параметры
		//  ОбъектФайла  - Ссылка на объект данных, для которого прикрепляются файлы.
		//  КнопкаОткрытияФайлов - Кнопка тулбара, по нажатию которой открывается
		//  форма списка файлов и изображений.
		//

		public void ПолучитьКартинкуКнопкиОткрытияФайлов(/*ОбъектФайла, СписокКнопокОткрытияФайлов*/)
		{
			//КартинкаКнопки = ?(ЕстьДополнительнаяИнформация(ОбъектФайла), БиблиотекаКартинок.ТолькоСкрепка, БиблиотекаКартинок.НевидимаяСкрепка);
		}
		// ПолучитьКартинкуКнопкиОткрытияФайлов()
		// Процедура открывает форму файлов и изображений по объекту отбора
		//

		public void ОткрытьФормуСпискаФайловИИзображений(/*СтруктураДляСпискаИзображений, СтруктураДляСпискаДополнительныхФайлов, ОбязательныеОтборы, ФормаВладелец, ИмяСправочника = "ХранилищеДополнительнойИнформации"*/)
		{
			//ФормаФайлов = Справочники[ИмяСправочника].ПолучитьФорму("ФормаСпискаФайловИИзображений", ФормаВладелец);
			/*// Изображения
*/
			if(true/*СтруктураДляСпискаИзображений.Свойство("ОтборОбъектИспользование")*/)
			{
				//ФормаФайлов.Изображения.Отбор.Объект.Использование = СтруктураДляСпискаИзображений.ОтборОбъектИспользование;
				//ФормаФайлов.Изображения.Отбор.Объект.Значение      = СтруктураДляСпискаИзображений.ОтборОбъектЗначение;
			}
			if(true/*СтруктураДляСпискаИзображений.Свойство("ДоступностьОтбораОбъекта")*/)
			{
				//ФормаФайлов.ЭлементыФормы.Изображения.НастройкаОтбора.Объект.Доступность = СтруктураДляСпискаИзображений.ДоступностьОтбораОбъекта;
			}
			if(true/*СтруктураДляСпискаИзображений.Свойство("ВидимостьКолонкиОбъекта")*/)
			{
				//ФормаФайлов.ЭлементыФормы.Изображения.Колонки.Объект.Видимость = СтруктураДляСпискаИзображений.ВидимостьКолонкиОбъекта;
			}
			/*// Дополнительные файлы
*/
			if(true/*СтруктураДляСпискаДополнительныхФайлов.Свойство("ОтборОбъектИспользование")*/)
			{
				//ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Использование = СтруктураДляСпискаДополнительныхФайлов.ОтборОбъектИспользование;
				//ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Значение      = СтруктураДляСпискаДополнительныхФайлов.ОтборОбъектЗначение;
			}
			if(true/*СтруктураДляСпискаДополнительныхФайлов.Свойство("ДоступностьОтбораОбъекта")*/)
			{
				//ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.НастройкаОтбора.Объект.Доступность = СтруктураДляСпискаДополнительныхФайлов.ДоступностьОтбораОбъекта;
			}
			if(true/*СтруктураДляСпискаДополнительныхФайлов.Свойство("ВидимостьКолонкиОбъекта")*/)
			{
				//ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.Колонки.Объект.Видимость = СтруктураДляСпискаДополнительныхФайлов.ВидимостьКолонкиОбъекта;
			}
			if(true/*СтруктураДляСпискаДополнительныхФайлов.Свойство("РасширениеФормыФайламиРезюме")*/)
			{
				if(true/*СтруктураДляСпискаДополнительныхФайлов.РасширениеФормыФайламиРезюме*/)
				{
					/*// В режиме файлов резюме используются дополнительные возможности
*/
					//ФормаФайлов.РасширениеФормыФайламиРезюме = Истина;
				}
			}
			//ФормаФайлов.ОбязательныеОтборы = ОбязательныеОтборы;
			if(true/*СтруктураДляСпискаИзображений.Свойство("ОтборОбъектИспользование") И СтруктураДляСпискаДополнительныхФайлов.Свойство("ОтборОбъектИспользование")*/)
			{
				if(true/*СтруктураДляСпискаИзображений.ОтборОбъектЗначение = СтруктураДляСпискаДополнительныхФайлов.ОтборОбъектЗначение*/)
				{
					//ФормаФайлов.Заголовок = "Хранилище дополнительной информации (" + СокрЛП(Строка(СтруктураДляСпискаИзображений.ОтборОбъектЗначение)) + ")";
				}
			}
			//ФормаФайлов.Открыть();
		}
		// Открывает форму основного изображения объекта
		//
		// Параметры
		//  ФормаВладелец – Форма – определяет форму владельца открываемой формы
		//  ОсновноеИзображение – СправочникСсылка.ХранилищеДополнительнойИнформации – содержит
		//                 ссылку на основное изображение объекта
		//

		public void ОткрытьФормуИзображения(/*ФормаВладелец, ОсновноеИзображение, ОбъектВладелец*/)
		{
			if(true/*ОсновноеИзображение = Неопределено ИЛИ ОсновноеИзображение.Пустая()*/)
			{
				//ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
				//ДиалогОткрытияФайла.Заголовок = "Выберите файл с изображением";
				//ДиалогОткрытияФайла.ПолноеИмяФайла = "";
				//ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;
				//ДиалогОткрытияФайла.Фильтр = ПолучитьФильтрИзображений();
				if(true/*ДиалогОткрытияФайла.Выбрать()*/)
				{
					//ВыбранноеИзображение = Новый Картинка(ДиалогОткрытияФайла.ПолноеИмяФайла, Ложь);
				}
				//НовыйОбъект = Справочники.ХранилищеДополнительнойИнформации.СоздатьЭлемент();
				//НовыйОбъект.ВидДанных = Перечисления.ВидыДополнительнойИнформацииОбъектов.Изображение;
				//НовыйОбъект.Хранилище = Новый ХранилищеЗначения(ВыбранноеИзображение, Новый СжатиеДанных);
				//НовыйОбъект.Объект = ОбъектВладелец;
				//НовыйОбъект.ИмяФайла = ПолучитьИмяФайлаИзПолногоПути(ДиалогОткрытияФайла.ПолноеИмяФайла);
				//ФормаИзображения = НовыйОбъект.ПолучитьФорму("ФормаИзображения");
			}
			//ФормаИзображения.ВладелецФормы = ФормаВладелец;
			//ФормаИзображения.РежимВыбора = Истина;
			//ФормаИзображения.ЗакрыватьПриВыборе = Ложь;
			//ФормаИзображения.Открыть();
		}
		// ОткрытьФормуИзображения()
		// Выделяет из имени файла его расширение (набор символов после последней точки).
		//
		// Параметры
		//  ИмяФайла     – Строка, содержащая имя файла, неважно с именем каталога или без.
		//
		// Возвращаемое значение:
		//   Строка – расширение файла.
		//

		public object ПолучитьРасширениеФайла(/*Знач ИмяФайла*/)
		{
			//Расширение = ПолучитьЧастьСтрокиОтделеннойСимволом(ИмяФайла, ".");
			return null;
		}
		// Выделяет из полного пути к файлу его имя (набор символов после последней \).
		//
		// Параметры
		//  ПутьКФайлу     – Строка, содержащая имя файла, неважно с именем каталога или без.
		//
		// Возвращаемое значение:
		//   Строка – расширение файла.
		//

		public object ПолучитьИмяФайлаИзПолногоПути(/*Знач ПутьКФайлу*/)
		{
			//ИмяФайла = ПолучитьЧастьСтрокиОтделеннойСимволом(ПутьКФайлу, "\");
			return null;
		}
		// Функция определяет, относится ли расширение файла к списку расширений изображений
		//

		public object ФайлИмеетРасширениеИзображения(/*Знач ИмяФайла*/)
		{
			//РасширенияИзображения = "BMP,DIB,RLE,JPG,JPEG,TIF,GIF,PNG,ICO,WMF,EMF";
			return null;
		}
		// ФайлИмеетРасширениеИзображения
		// функция возвращает часть строки после последнего встреченного символа в строке

		public object ПолучитьЧастьСтрокиОтделеннойСимволом(/*Знач ИсходнаяСтрока, Знач СимволПоиска*/)
		{
			//ПозицияСимвола = СтрДлина(ИсходнаяСтрока);
			while(true/*ПозицияСимвола >= 1*/)
			{
				if(true/*Сред(ИсходнаяСтрока, ПозицияСимвола, 1) = СимволПоиска*/)
				{
				}
				//ПозицияСимвола = ПозицияСимвола - 1;
			}
			return null;
		}
	}
}
